﻿using JetBrains.Annotations;
using Volo.Abp;
using Volo.Abp.Domain.Entities;

namespace ParkManagement
{
    /// <summary>
    /// 挪车信息
    /// </summary>
    public class Move : BasicAggregateRoot<int>
    {
        /// <summary>车牌号</summary>
        public string PlateNo { get; protected set; }
        
        /// <summary>现场照片</summary>
        public string Photo { get; protected set; }

        /// <summary>身份证号</summary>
        public string IdCard { get; protected set; }

        /// <summary>联系电话</summary>
        public string Tel { get; protected set; }

        /// <summary>省</summary>
        public string Province { get; protected set; }

        /// <summary>市</summary>
        public string City { get; protected set; }
        
        /// <summary>区</summary>
        public string Area { get; protected set; }

        /// <summary>详细地址</summary>
        public string Address { get; protected set; }

        private Move() { }

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="plateNo"></param>
        /// <param name="photo"></param>
        /// <param name="idCard"></param>
        /// <param name="tel"></param>
        /// <param name="province"></param>
        /// <param name="city"></param>
        /// <param name="area"></param>
        /// <param name="address"></param>
        internal Move(
            [NotNull] string plateNo,
            [NotNull] string photo,
            [NotNull] string idCard,
            [NotNull] string tel,
            [NotNull] string province,
            [NotNull] string city,
            [NotNull] string area,
            string address)
        {
            PlateNo = Check.NotNullOrWhiteSpace(plateNo, nameof(plateNo));
            Photo = Check.NotNullOrWhiteSpace(photo, nameof(photo));
            IdCard = Check.NotNullOrWhiteSpace(idCard, nameof(idCard));
            Tel = Check.NotNullOrWhiteSpace(tel, nameof(tel));
            Province = Check.NotNullOrWhiteSpace(province, nameof(province));
            City = Check.NotNullOrWhiteSpace(city, nameof(city));
            Area = Check.NotNullOrWhiteSpace(area, nameof(area));
            Address = address;
        }
    }
}